/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.diplomka.servicelayer.dto;

import cz.fi.muni.diplomka.common.enumeration.BuildingType;
import cz.fi.muni.diplomka.common.enumeration.ResearchType;
import java.util.Map;
import java.util.Objects;

/**
 * Class representing finished Research of Player
 *
 * @author Jakub Kutil
 */
public class Research {

    private Long playerId;
    private ResearchType researchType;
    private int priceFood;
    private int priceGold;
    private int priceStone;
    private int priceTime;
    private Map<String, Integer> effects;
    private Map<BuildingType, Integer> requires;

    public Research() {
    }

    public Long getPlayerId() {
        return playerId;
    }

    public void setPlayerId(Long playerId) {
        this.playerId = playerId;
    }

    public ResearchType getResearchType() {
        return researchType;
    }

    public void setResearchType(ResearchType researchType) {
        this.researchType = researchType;
    }

    public int getPriceFood() {
        return priceFood;
    }

    public void setPriceFood(int priceFood) {
        this.priceFood = priceFood;
    }

    public int getPriceGold() {
        return priceGold;
    }

    public void setPriceGold(int priceGold) {
        this.priceGold = priceGold;
    }

    public int getPriceStone() {
        return priceStone;
    }

    public void setPriceStone(int priceStone) {
        this.priceStone = priceStone;
    }

    public int getPriceTime() {
        return priceTime;
    }

    public void setPriceTime(int priceTime) {
        this.priceTime = priceTime;
    }

    public Map<String, Integer> getEffects() {
        return effects;
    }

    public void setEffects(Map<String, Integer> effects) {
        this.effects = effects;
    }

    public Map<BuildingType, Integer> getRequires() {
        return requires;
    }

    public void setRequires(Map<BuildingType, Integer> requires) {
        this.requires = requires;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 53 * hash + Objects.hashCode(this.researchType);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Research other = (Research) obj;
        if (this.researchType != other.researchType) {
            return false;
        }
        return true;
    }
}
